elasticsearch应用

- 1、elasticsearch应用背景

一个产品推荐系统,基于用户购买的行为记录,为用户归类,例如保险产品,用户所属为父母类人群,为用户推荐小孩种类的保险。
根据用户身份证号查询对应的产品信息,这个集合(索引)是大数据跑出来的。

elasticsearch 底层是基于Lucene,对外提供restApi接口调用

- 2、elasticsearch安装下载

jdk1.8环境

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/

- 3、权限配置

chmod -R 777 /upload

启动

新建elasticsearch用户,不要用root启动。
进入bin启动 ./elasticsearch

默认9200为对外访问端口,9300内部之间访问端口

- 4、增删改查

index

  1. 查看当前节点的所有 Index
    curl -X GET ‘http://localhost:9200/_cat/indices?v
  2. 查看指定index所有type
    curl ‘localhost:9200/indexName/_mapping?pretty=true’
  3. 查询某index type
    curl ‘localhost:9200/indexName/typeName/_search’
  4. 根据id查询
    curl ‘localhost:9200/indexName/typeName/1?pretty=true’
  5. 新增记录
    $ curl -X PUT ‘localhost:9200/accounts/person/1’ -d ‘
    {
    “user”: “张三”,
    “title”: “工程师”,
    “desc”: “数据库管理”
    }’
  6. 删除记录
    $ curl -X DELETE ‘localhost:9200/accounts/person/1’
  7. 更新记录
    $ curl -X PUT ‘localhost:9200/accounts/person/1’ -d ‘
    {
    “user” : “张三”,
    “title” : “工程师”,
    “desc” : “数据库管理,软件开发”
    }’

    8. elasticsearch查询语法,之后会再开一篇来介绍TODO

- 5、客户端

  1. TransportClient(附demo链接)
  2. 原生rest接口访问
  3. springframework.data.responstory.Elasticsearchtemplate

不同版本的坑,2.4和5.1

1、 2.4和5.1 TransportClient获取链接写法有区别
2、 5.1的TransportClient需要较高版本的guava,这里用的为 18.0
3、 内存不够用的情况下,进入config目录,修改jvm.property,内存由2G修改为512M

- 6、extend 插件(head)

yum install git npm                            
npm在epel源中
git clone https://github.com/mobz/elasticsearch-head.git        
# 安装过程需要连接互联网
cd elasticsearch-head
# git clone后会自动生成的一个目录
npm install
npm run start